﻿#define _CRT_SECURE_NO_WARNINGS 1
#define _CRT_SECURE_NO_WARNINGS 1


#include<stdio.h>
//#define MAX(x,y) ( (x) >(y) ?(x):(y))
//int max(int x, int y, int z)
//{
//
//	if (x > y)
//		return x;
//	return y;
//
//}
////#define MAX(a, b) ( (a) > (b) ? (a) : (b) )
//
//
//int main()
//{
//	int a = 1, b = 1, c = 5;
//	a = MAX(1, 2);
//	printf("%d ", a);
//	int x = 5;
//	int y = 8;
//	int z = MAX(x++, y++);
//	//printf("x=%d y=%d z=%d\n", x, y, z);
//	return 0;
//}
//#define SWAP(x, y)\
//x = x + y;\
//y = x - y;\
//x = x - y;
//
//void swap(int* a,int* b)
//{
//	int tmp;
//	tmp = *a;
//	*a = *b;
//	*b = tmp;
//}
//int main()
//{
//	int a = 10, b = 20;
//	double c = 19.0;
//	swap(&a, &b);
//	swap(&a, &c);//error
//	SWAP(a,c)
//	printf("%-2d  %d\n", a, b);
//	return 0;
//}





​
​
​
//#define SQUARE(x) x*x
//int main()
//{
//	printf("%d", SQUARE(4 + 1));
//	return 0;
//}
////替换后函数真实代码：
//int main()
//{
//	printf("%d", 4 + 1 * 4 + 1);
//	return 0;
//}
////我们想要要的其实是5平方的结果，但是对于宏的替换来说，它只替换。这样意味着，我们写宏时要注意规避这样因优先级引起的问题。
////改进：
//#define SQUARE(x) (x)*(x)
//​//替换后函数真实代码：
//int main()
//{
//	printf("%d", (4 + 1) * (4 + 1));
//	return 0;
//}
//
//​
//​
//#define DOUBLE(x) (x+x)
//int main()
//{
//	printf("%d", DOUBLE(4) * 3 + 1);
//	return 0;
//}
////替换后函数真实代码：首先4被放入替换文本“(x+x)”的x位置，替换文本变成(4+4)，然后再直接替换
//int main()
//{
//	printf("%d", (4 + 4) * 3 + 1);
//	return 0;
//}
/*
字符串轮转。给定两个字符串s1和s2，请编写代码检查s2是否为s1旋转而成（比如，waterbottle是erbottlewat旋转后的字符串）。
 输入：s1 = "waterbottle", s2 = "erbottlewat"
 输出：True*/
//​
//bool isFlipedString(char* s1, char* s2) {
//    int m = strlen(s1), n = strlen(s2);
//    if (m != n) {
//        return false;
//    }
//    if (n == 0) {
//        return true;
//    }
//    for (int i = 0; i < n; i++) {
//        bool flag = true;
//        for (int j = 0; j < n; j++) {
//            if (s1[(i + j) % n] != s2[j]) {
//                flag = false;
//                break;
//            }
//        }
//        if (flag) {
//            return true;
//        }
//    }
//    return false;
//}

​

